%% 编程实现对"rec1.bmp"图像的频域处理
% 在一个窗口下显示原图像、频谱图像、中心平移后的频谱图像和中心平移后的增强型频谱图像；
close all; clear; clc;
img = imread('rec1.bmp');% 读取图像
subplot(2, 2, 1); imshow(img); title('Original Image');% 显示原始图像

img = im2double(img); % 确保图像数据在0到1之间,方便对数变换
img_fft = fft2(img);% 进行二维FFT变换
Pinpu = abs(img_fft);% 计算幅度谱并进行对数变换以便于显示
subplot(2, 2, 2);imshow(Pinpu, []);title('频谱图像');% 显示频谱图像

Pinpu_shifted = fftshift(Pinpu);    % 中心平移频谱图像
subplot(2, 2, 3);imshow(Pinpu_shifted, []);title('中心平移后的频谱');

Pinpu_enc = log(1 + Pinpu_shifted); % 加1 - 避免对数中的0值
subplot(2, 2, 4); imshow(Pinpu_enc, []); title('中心平移后的增强型频谱图像');